//
//  FifteenViewController.m
//  项目二
//
//  Created by rimi on 16/5/17.
//  Copyright © 2016年 objective. All rights reserved.
//

#import "FifteenViewController.h"
#import "Datai3ViewController.h"
@interface FifteenViewController ()<UITableViewDelegate,UITableViewDataSource>
@property(nonatomic,strong)UITableView *tableView;
@property(nonatomic,strong)NSMutableDictionary *mtdic;
@property(nonatomic,strong)NSArray *NamelistArray;/**放系统所有的字体名*/
@property(nonatomic,strong)NSMutableArray *allKeys; /**放数据源字典所有的key*/
@end

@implementation FifteenViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor whiteColor];
    self.title = @"表格视图";
    [self loadDataSource];
    [self.view addSubview:self.tableView];
}

-(void)loadDataSource {
 /**初始化数据源*/
    _mtdic = [NSMutableDictionary dictionary];
    /**获取系统所有支持的字体名*/
    _NamelistArray = [UIFont familyNames];
    for (NSString *string in _NamelistArray) {
        /**获取字体名的首字母*/
        NSString *flirst = [[string substringToIndex:1]uppercaseString];
        /**取出当前 key 对应的字体名数组 （当前键对值 value）*/
        NSMutableArray *array = [NSMutableArray arrayWithArray:_mtdic[flirst]];
        /**把当前字体加入到字体名数组*/
        [array addObject:string];
        /**排序*/
        [array sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
        /**把当前字体数组放到字典对应的 key 里*/
        [_mtdic setObject:array forKey:flirst];
    }
    /**取得所有的key*/
    _allKeys = [[_mtdic allKeys] mutableCopy];
    [_allKeys sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
    /**刷新数据*/
    [_tableView reloadData];
}


#pragma mark - UITableViewDelegate

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
   /**取消cell的选中颜色*/
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
    /**获取当前点击的cell*/
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    
    Datai3ViewController *datai3 = [[Datai3ViewController alloc]init];
    datai3.stringName = cell.textLabel.text;
    [self.navigationController pushViewController:datai3 animated:YES];
}
/**分区的高度*/
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
    return 30;
}
/**分区的标题*/
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
    return _allKeys[section];
}
#pragma mark - UITableViewDataSource

/**表格有多少分区*/
- (NSInteger )numberOfSectionsInTableView:(UITableView *)tableView{
    return _allKeys.count;
}

/**指定分区有多少行*/
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
   /**获取当前字典的 key*/
    NSString *currentKey = _allKeys[section];
    return [_mtdic[currentKey]count];
}

//配置每一行cell
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    //    NSLog(@"在多少分区：%ld", indexPath.section);
    //    NSLog(@"在多少行：%ld", indexPath.row);
    //table view 的重用机制
    //1.声明一个可重用标识符
    static NSString *cellIdentifer = @"mycell";
    
    //2.从队列里取出一个可重用的cell
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifer];
    //3.如果 cell 没有被初始化，则初始化它
    if (!cell) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifer];
    }
    //获取当前分区对应的字体数组
    NSArray *fontArray = _mtdic[_allKeys[indexPath.section]];
    cell.textLabel.text = fontArray[indexPath.row];
    cell.textLabel.font = [UIFont fontWithName:fontArray[indexPath.row] size:16];
    /** > 符号*/
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    
    return cell;
    
}

#pragma mark - GET
-(UITableView *)tableView{
    if (!_tableView) {
        _tableView = [[UITableView alloc]initWithFrame:self.view.frame style:UITableViewStylePlain];
        _tableView.delegate = self;
        _tableView.dataSource = self;
        _tableView.rowHeight = 70;
    }
    return _tableView;
}
@end
